<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>1.函数声明的多种方式</title>
</head>

<body>
  <script>
    // 很多类型都是对象，例如字符串可以使用new String() 定义
    let str = new String('hdcmc.com');
    console.log(str); //String {'hdcmc.com'}
    str = 'houdunren';
    console.log(str.substring(0, 3)); // 之所以可以直接调用方法，是因为字符串被转成了对象
    // 对象的形式定义函数
    let func = new Function('title', 'console.log(title)');
    func('后盾人'); //后盾人
    //标准语法定义函数
    function hd (title) {
      console.log(title);
    };
    hd('houdunren');
    hd('houdunren');
    hd('houdunren');
    // 函数赋值给变量, 表达式声明函数,结尾要加分号，不加分号在打包是可能会出错
    let cms = function (title) {
      console.log(title);
    };
    cms("后盾人");// 后盾人
    // 对象字面量属性函数简写 
    let user = {
      name: null,
      setUserName: function (name) {
        this.name = name;
      },
      //简写形式
      getName () {
        return this.name;
      }
    };
    user.setUserName("name1");
    console.log(user.getName()); //name1
  </script>
</body>

</html>